﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;

namespace sistemaAcademicoFinanceiroEscolas.DynamicData.CustomPages.matriculas
{
    public partial class modificarMatricula : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //lstTurma.Items.Clear();

            if (!Page.IsPostBack)
            {
                SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqlc.Open();

                string codigodiaPagamento = "";
                string codigoSerie = "";
                string codigoTurma = "";
                string codigoAnoLetivo = "";

                //resgatar dados prévios da matrícula 

                string sqlMatricula = "select * from matricula where codigoMatriculaAluno =" + Request["codigoMatricula"].ToString();
                SqlCommand cmdMatricula = new SqlCommand(sqlMatricula, sqlc);
                SqlDataReader myReaderMatricula = cmdMatricula.ExecuteReader();

                while (myReaderMatricula.Read())
                {
                   
                    codigoSerie = myReaderMatricula["codigoSerie"].ToString();
                    codigoTurma = myReaderMatricula["codigoTurma"].ToString();
                    codigoAnoLetivo = myReaderMatricula["codigoAnoLetivo"].ToString();
                    codigodiaPagamento = myReaderMatricula["codigodiaPagamento"].ToString();
                    txtObservacoes.Text = myReaderMatricula["observacoesMatricula"].ToString();
                }

                cmdMatricula.Dispose();
                myReaderMatricula.Close();

                //Escrever o nome do aluno

                codigoAluno.Value = Request.QueryString["codigoAluno"];
                //Pegar nome do aluno


                //Resgatar o nome do aluno
                string q = "select codigoAluno, nomeAluno from aluno where codigoAluno=" + Request.QueryString["codigoAluno"];
                SqlCommand cmd = new SqlCommand(q, sqlc);
                SqlDataReader myReader = cmd.ExecuteReader();

                while (myReader.Read())
                {
                    string nomeAluno = myReader["nomeAluno"].ToString();

                    lblcodigoAluno.Text = Request.QueryString["codigoAluno"].ToString();
                    lblNomeAluno.Text = nomeAluno;
                }

                //nome do aluno escrito

                cmd.Dispose();
                myReader.Close();

                // carregamento o dia pagamento mensalidade

                string sqldiaPagamento = "select * from diaPagamento";

                SqlCommand cmddiaPagamento = new SqlCommand(sqldiaPagamento, sqlc);
                SqlDataReader myReaderdiaPagamento = cmddiaPagamento.ExecuteReader();

                while (myReaderdiaPagamento.Read())
                {

                    ListItem diaPagamento = new ListItem();

                    diaPagamento.Value = myReaderdiaPagamento["codigodiaPagamento"].ToString();
                    diaPagamento.Text = myReaderdiaPagamento["descricaodiaPagamento"].ToString();

                    //lstdiaPagamento.Items.Add(diaPagamento);

                }

                //selecionar a turma da matricula

                //lstdiaPagamento.SelectedValue = codigodiaPagamento;

                cmddiaPagamento.Dispose();
                myReaderdiaPagamento.Close();

                //sqlc.Close();

                //carregar as turmas da serie da matricula e selecionar a turma previamente definida
                //na matricula do aluno


                string sqlTurma = "select * from turma where codigoSerie=" + codigoSerie;

                SqlCommand cmdTurma = new SqlCommand(sqlTurma, sqlc);
                SqlDataReader myReaderTurma = cmdTurma.ExecuteReader();


                while (myReaderTurma.Read())
                {

                    ListItem turma = new ListItem();

                    turma.Value = myReaderTurma["codigoTurma"].ToString();
                    turma.Text = myReaderTurma["descricaoTurma"].ToString();

                    lstTurma.Items.Add(turma);

                }

                //selecionar a turma da matricula

                lstTurma.SelectedValue = codigoTurma;

                cmdTurma.Dispose();
                myReaderTurma.Close();

                //fim de carregar as turmas da serie da matricula e selecionar a turma previamente definida
                //na matricula do aluno

                //carregar anos letivos

                string sqlAnoLetivo = "select * from anoLetivo";

                SqlCommand cmdAnoLetivo = new SqlCommand(sqlAnoLetivo, sqlc);
                SqlDataReader myReaderAnoLetivo = cmdAnoLetivo.ExecuteReader();

                ListItem anoLetivoSelecione = new ListItem();
                anoLetivoSelecione.Value = "0";
                anoLetivoSelecione.Text = "Selecione um Ano Letivo";

                lstAnoLetivo.Items.Add(anoLetivoSelecione);

                while (myReaderAnoLetivo.Read())
                {

                    ListItem anoLetivo = new ListItem();

                    anoLetivo.Value = myReaderAnoLetivo["codigoAnoLetivo"].ToString();
                    anoLetivo.Text = myReaderAnoLetivo["descricaoAnoLetivo"].ToString();

                    lstAnoLetivo.Items.Add(anoLetivo);

                }

                //selecionar AnoLetivo cadastrado previamente na matricula

                lstAnoLetivo.SelectedValue = codigoAnoLetivo;

                cmdAnoLetivo.Dispose();
                myReaderAnoLetivo.Close();

                //anios letivos carregados


                //Carregar séries

                string sqlSerie = "select * from serie where codigoAnoLetivo = " + lstAnoLetivo.SelectedValue;

                SqlCommand cmdSerie = new SqlCommand(sqlSerie, sqlc);
                SqlDataReader myReaderSerie = cmdSerie.ExecuteReader();

                ListItem serieSelecione = new ListItem();
                serieSelecione.Value = "0";
                serieSelecione.Text = "Selecione uma série";

                lstSerie.Items.Add(serieSelecione);

                while (myReaderSerie.Read())
                {

                    ListItem serie = new ListItem();

                    serie.Value = myReaderSerie["codigoSerie"].ToString();
                    serie.Text = myReaderSerie["descricaoSerie"].ToString();

                    lstSerie.Items.Add(serie);


                }

                lstSerie.SelectedValue = codigoSerie;

                cmdSerie.Dispose();
                myReaderSerie.Close();

                sqlc.Close();


            }

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            //verificar que serie, turma e analetivo foram selecionados
            if ((lstSerie.SelectedValue != "0") & (lstTurma.SelectedValue != "0") & (lstAnoLetivo.SelectedValue != "0"))
            {

                //Cadastrar Matrícula no banco de dados

                SqlConnection sqld = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
                sqld.Open();

                string SqlMatricula = "update matricula set codigoTurma = " + lstTurma.SelectedValue + ", ";
                SqlMatricula = SqlMatricula + "codigoAnoLetivo = " + lstAnoLetivo.SelectedValue + ",";
                SqlMatricula = SqlMatricula + "observacoesMatricula = '" + txtObservacoes.Text + "', codigoSerie = " + lstSerie.SelectedValue;
                SqlMatricula = SqlMatricula + " where codigoMatricula = " + Request["codigoMatricula"].ToString();

                SqlCommand cadastrarMatricula = new SqlCommand(SqlMatricula, sqld);
                cadastrarMatricula.ExecuteNonQuery();

                string literalc = "<script language=JavaScript>matriculaRealizada();</script>";
                form1.Controls.Add(new LiteralControl(literalc));


                sqld.Close();

                string codigoMatricula = Request["codigoMatricula"].ToString();

                //if (codigoMatricula != "")
                //{
                //    MontarPagamentoAluno cpa = new MontarPagamentoAluno();
                //    cpa.modificarDataPagamentoAluno(codigoMatricula, lstdiaPagamento.SelectedItem.ToString(), lstAnoLetivo.SelectedValue, lstSerie.SelectedValue, lstTurma.SelectedValue);
                //}

            }
            else
            {

                lblValidacao.Text = "A série, turma e ano letivo devem ser selecionados.";

            }
        }

        protected void lstSerie_SelectedIndexChanged(object sender, EventArgs e)
        {
            //Carregar as turmas da série

            lstTurma.Items.Clear();

            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            string sqlTurmas = "select * from turma where codigoSerie=" + lstSerie.SelectedValue;
            SqlCommand cmd = new SqlCommand(sqlTurmas, sqlc);
            SqlDataReader myReader = cmd.ExecuteReader();

            if (!Page.IsPostBack)
            {

                ListItem turmaSelecione = new ListItem();

                turmaSelecione.Value = "0";
                turmaSelecione.Text = "Selecione uma turma.";

                lstTurma.Items.Add(turmaSelecione);

            }

            while (myReader.Read())
            {

                ListItem turma = new ListItem();

                turma.Value = myReader["codigoTurma"].ToString();
                turma.Text = myReader["descricaoTurma"].ToString();

                lstTurma.Items.Add(turma);

            }

            cmd.Dispose();
            myReader.Close();

            //Turmas da série carregadas
        }

        protected void lstAnoLetivo_SelectedIndexChanged(object sender, EventArgs e)
        {
            SqlConnection sqlc = new SqlConnection(ConfigurationManager.AppSettings["baseDados"]);
            sqlc.Open();

            string codigoSerie = "";

            //resgatar dados prévios da matrícula

            string sqlMatricula = "select * from matricula where codigoMatricula=" + Request["codigoMatricula"].ToString();
            SqlCommand cmdMatricula = new SqlCommand(sqlMatricula, sqlc);
            SqlDataReader myReaderMatricula = cmdMatricula.ExecuteReader();

            while (myReaderMatricula.Read())
            {
                codigoSerie = myReaderMatricula["codigoSerie"].ToString();

                txtObservacoes.Text = myReaderMatricula["observacoesMatricula"].ToString();
            }

            cmdMatricula.Dispose();
            myReaderMatricula.Close();
            lstSerie.Items.Clear();


            //Carregar séries

            string sqlSerie = "select * from serie where codigoAnoLetivo = " + lstAnoLetivo.SelectedValue;

            SqlCommand cmdSerie = new SqlCommand(sqlSerie, sqlc);
            SqlDataReader myReaderSerie = cmdSerie.ExecuteReader();

            ListItem serieSelecione = new ListItem();
            serieSelecione.Value = "0";
            serieSelecione.Text = "Selecione uma série";

            lstSerie.Items.Add(serieSelecione);

            while (myReaderSerie.Read())
            {

                ListItem serie = new ListItem();

                serie.Value = myReaderSerie["codigoSerie"].ToString();
                serie.Text = myReaderSerie["descricaoSerie"].ToString();

                lstSerie.Items.Add(serie);


            }

            cmdSerie.Dispose();
            myReaderSerie.Close();
            sqlc.Close();

            //Finalizar carregamento de séries
        }
    }
}
